
package com.insigma.business.qrcode.soldier._provider;


import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.*;
import com.insigma.business.qrcode.soldier.request.BaseGetRequest;

import java.util.List;
import java.util.Map;


public interface CompanyProvider {

    
    BasePagingResponse<List<CompanyDTO>> searchCompany(final CompanySearchRequest companySearchRequest);

    BaseResponse<List<CompanyPositNoFairIdGroupDTO>> getCompanyPositNoFairId();

    BasePagingResponse<List<CompanyDTO>> searchCompanyOfQualification(final CompanySearchRequest companySearchRequest);

    
    BaseResponse<CompanyDTO> getCompany(final BaseGetRequest baseGetRequest);

    
    BaseResponse<CompanyDTO> getCompanyWithJobPosition(final BaseGetRequest baseGetRequest);

    
    BaseResponse<Integer> countCompany(final CompanySearchRequest companySearchRequest);

    
    BaseResponse<CompanyDTO> getCompanyByUserId(String userId);

    
    BaseResponse<CompanyDTO> getCompanyByEmployeeId(final String employeeId);

    
    BaseResponse<String> insertCompany(final CompanyInsertRequest companyInsertRequest);

    BaseResponse<String> insertJobReportCompany(final CompanyInsertRequest companyInsertRequest);

    BaseResponse<Integer> updateCompany(final CompanyUpdateRequest companyUpdateRequest);

    
    BaseResponse<Integer> updateCompanyExtraInfo(final CompanyUpdateRequest companyUpdateRequest);

    
    BaseResponse<Integer> deleteCompany(final BaseDeleteRequest deleteRequest);

    
    BaseResponse<Map<String,String>> getCompanyId2NameMapByIdList(final List<String> idList);

    
    BaseResponse<Integer> importCompany(final SimpleApiRequest request);

    
    BaseResponse<CompanyTrainingStatsDTO> statsCompanyTraining(final CompanySearchRequest request);


    BaseResponse<CompanyTrainingStatsDTO> statsCompanyTrainingOfGov(final CompanySearchRequest request);

    CompanyDTO getCachedCompanyInfo(String orgId);
}
